package com.itheima.work.day7;

import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Iterator;
/*
创建5个人放到ArrayList中.
        使用迭代器获取每个人的信息.找出最高的人,最矮的人并输出最高人和最矮人的信息.
        打印格式如下:
        最高的人是张三,身高1.80. 最矮的人是李四,身高1.60
*/
public class Test4 {
    public static void main(String[] args) {
//        2.	定义ArrayList
        ArrayList<Student> list = new ArrayList<>();
//        3.	添加5个学生
        list.add(new Student("张三",21,1.80));
        list.add(new Student("李四",21,1.60));
        list.add(new Student("王武",22,1.70));
        list.add(new Student("赵六",20,1.73));
        list.add(new Student("宋琪",22,1.68));
//        4.	获取迭代器
        Iterator<Student> iterator = list.iterator();
        Student firstStudent = iterator.next();
//        5.	定义最高人
        Student highestStudent = firstStudent;
//        6.	定义最矮人
        Student shortestStudent = firstStudent;
//        7.	使用迭代器循环判断是否有下一个人
        while (iterator.hasNext()) {
//        8.	使用next方法获取学生对象
            Student tempStudent = iterator.next();
//        9.	判断这个人的的身高是否大于最大高度
            if (tempStudent.getHeight() > highestStudent.getHeight()) {
//        10.	这个人的的身高大于最大高度.最大身高的人等于这个人
                highestStudent = tempStudent;
            }
//        11.	判断这个人的的身高是否小于于最矮高度
            if (tempStudent.getHeight() < shortestStudent.getHeight()){
//        12.	这个人的的身高小于于最矮高度.最矮身高的人等于这个人
                shortestStudent = tempStudent;
            }
        }
        DecimalFormat df = new DecimalFormat("0.00");
//        13.	按照格式打印信息
        System.out.println("最高的人是" + highestStudent.getName() + ",身高" + df.format( highestStudent.getHeight()));
        System.out.println("最矮的人是" + shortestStudent.getName() + ",身高" + df.format(shortestStudent.getHeight()));

    }
}
//自定义人类:包含姓名,年龄,身高属性.私有成员变量,生成无参,有参构造方法,生成get/set方法.
class Student{
    private String name;
    private int age;
    private double height;

    public Student() {
    }

    public Student(String name, int age, double height) {
        this.name = name;
        this.age = age;
        this.height = height;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public double getHeight() {
        return height;
    }

    public void setHeight(double height) {
        this.height = height;
    }
}